package org.zhadoop.streaming.operator;

import java.io.Serializable;
import java.util.Map;

import org.zhadoop.streaming.event.TupleEvent;
import org.zhadoop.streaming.exception.StreamingException;

/**
 * 流处理基础算子接口
 * 这个算子里面的接口，都是运行时的接口
 * 
 * @author zwd
 *
 */
public interface IOperator extends Serializable{

	/**
	 * 运行时初始化的接口
	 * @param emitters
	 * @throws StreamingException
	 */
	void initialize(Map<String,IEmitter> emitters) throws StreamingException;
	
	/**
	 * 运行时执行的接口
	 * @param streamName
	 * @param event
	 * @throws StreamingException
	 */
	void execute(String streamName,TupleEvent event) throws StreamingException;
	
	/**
	 * 运行时销毁的接口
	 * @throws StreamingException
	 */
	void destory() throws StreamingException;
	
}
